import type { Picture } from './common'
import type { PatientListGetDataItem } from './patient'

/** 科室列表项 */
export interface DepartmentItem {
  /** 科室id */
  id?: string
  /** 科室名称 */
  name?: string
  /** 二级科室数组 */
  child?: DepartmentItem[]
  /** 图片 */
  avatar?: string
}

/** 保存/修改问诊订单--请求参数 */
export interface ConsultOrderParams {
  /** 开药门诊-过敏史0无1有2不清楚 */
  allergicHistory?: number
  /** 找医生/极速问诊-是否就诊过0未就诊1就诊过 */
  consultFlag?: number
  /** 使用优惠券，必传可使用优惠券id */
  couponId?: string
  /** 选择的科室id-极速问诊必填(选择的科室) */
  depId?: string
  /** 咨询的医生-类型为找医生问诊，字段是必须的 */
  docId?: string
  /** 开药门诊-生育状态及计划0无1备孕中2已怀孕3哺乳期 */
  fertilityStatus?: number
  /** 病情--症状描述 */
  illnessDesc: string
  /** 找医生/极速问诊-患病时间1一周内2一月内3半年内4半年以上 */
  illnessTime?: number
  /** 极速问诊类型：0普通1三甲 */
  illnessType?: number
  /** 开药门诊-肝功能0正常1异常2不清楚 */
  liverFunction?: number
  /** 开药问诊-开药问诊的药品id集合 */
  medicines?: Medicine[]
  /** 患者id,用于关联患者信息 */
  patientId: string
  /** 补充病例信息-图片集合 */
  pictures?: Picture[]
  /** 开药门诊-肾功能0正常1异常2不清楚 */
  renalFunction?: number
  /** 就诊类型1找医生 2极速问诊 3开药问诊默认是1 */
  type: number
}

/** 药品 */
export interface Medicine {
  /** 选择的药品id */
  id: string
  /** 选择的药品数量 */
  quantity: number
}

/** 支付页面-计算就诊信息和抵扣信息--请求参数 */
export interface GetPatientConsultOrderPreParams {
  /** 可使用优惠券id,当使用优惠券，且指定了优惠券时，传值 */
  couponId?: string
  /** type为1找医生，必传医生信息，返回医生服务费信息 */
  docId?: string
  /** 极速问诊级别：0普通1三甲 */
  illnessType?: string
  /** 问诊类型1找医生2极速问诊3开药问诊 */
  type: string
  /** 不传，默认为是，使用优惠券，其中，不传优惠券id,默认按照最大优惠券使用，传了优惠券id,表示使用指定的优惠券 */
  useCoupon?: string
}

/** 支付页面-计算就诊信息和抵扣信息--请求结果 */
export interface GetPatientConsultOrderPreData {
  /** 实付金额 */
  actualPayment: number
  /** 优惠券抵扣 */
  couponDeduction: number
  /** 使用的优惠券id-使用优惠券时，返回 */
  couponId?: string
  /** 极速问诊类型：0普通1三甲,极速问题必须有值 */
  illnessType?: number
  /** 应付款/价格-图文或者极速的费用，极速普通10元，三甲39元 */
  payment: number
  /** 积分可抵扣 */
  pointDeduction: number
  /** 1问医生2极速问诊2开药问诊--默认是1 */
  type?: number
}

/** 支付参数 */
export interface ConsultPayParams {
  /** 订单id */
  orderId: string
  /** 上课自测时，传值：http://localhost:端口号/+回调页面，
   * vue/uniapp 版本测试环境，传值：http://测试环境域名/+回调页面，
   * 用于决定付款成功后，回调地址是本地还是测试环境地址
   */
  payCallback?: string
  /** 支付方式0微信支付，1支付宝2云闪付 */
  paymentMethod?: number
}

/** 问诊-查询订单详情信息 - 返回数据 */
export interface GetPatientConsultOrderDetailData {
  /** 实付金额 */
  actualPayment: number
  /** 开药门诊-过敏史0无1有2不清楚 */
  allergicHistory?: number
  /** 取消/退款进度 */
  cancelProcess?: string
  /** 取消订单原因 */
  cancelReason?: string
  /** 取消订单原因文字 */
  cancelReasonValue?: string
  /** 找医生/极速问诊-是否就诊过0未就诊1就诊过 */
  consultFlag?: number
  /** 倒计时-1表示计时已过(单位s) */
  countdown?: number
  /** 优惠券抵扣 */
  couponDeduction: number
  /** 订单创建时间 */
  createTime: string
  /** 订单创建人-用于医生端聊天的to对象 */
  creator: string
  /** 咨询的医生--找医生必有，其他类型有医生接单后，也必有 */
  docInfo?: DocInfo
  /** 是否已经评价1 已评价0 未评价 */
  evaluateFlag: number
  /** 存在评价，返回评价id */
  evaluateId: string
  /** 开药门诊-生育状态及计划0无1备孕中2已怀孕3哺乳期 */
  fertilityStatus?: number
  /** 订单id */
  id: string
  /** 病情--症状描述 */
  illnessDesc: string
  /** 找医生/极速问诊-患病时间1一周内2一月内3半年内4半年以上 */
  illnessTime?: number
  /** 开药门诊-肝功能0正常1异常2不清楚 */
  liverFunction?: number
  /** 开药问诊必有，其他类型无 */
  medicines?: Medicine[]
  /** 订单编号 */
  orderNo: string
  /** 患者id,用于关联患者信息 */
  patientInfo: PatientListGetDataItem
  /** 应付款/价格 */
  payment: number
  /** 接诊记录的图片信息集合 */
  pictures: Picture[]
  /** 积分可抵扣 */
  pointDeduction: number
  /** 处方id信息 */
  prescriptionId: string
  /** 开药门诊-肾功能0正常1异常2不清楚 */
  renalFunction?: number
  /** 订单状态1待支付2待接诊3咨询中4已完成5已取消/药品订单10待支付11待发货12待收货13已完成14已取消 */
  status: OrderStatus
  /** 问诊的订单状态1待支付2待接诊3咨询中4已完成5已取消/药品订单10待支付11待发货12待收货13已完成14已取消 */
  statusValue: string
  /** 订单类型1问医生2极速问诊3开药问诊4药品订单 */
  type: number
}

/** 咨询的医生--找医生必有，其他类型有医生接单后，也必有 */
export interface DocInfo {
  /** 医生头像 */
  avatar: string
  /** 科室 */
  depName: string
  /** 医院等级 */
  gradeName: string
  /** 医院名称 */
  hospitalName: string
  /** 医生id */
  id: string
  /** 医生姓名 */
  name: string
  /** 职称 */
  positionalTitles: string
}

/** 药品信息 */
export interface Medicine {
  /** 药品价格 */
  amount: string
  /** 药品图片 */
  avatar: string
  /** 主键id */
  id: string
  /** 药品名称 */
  name: string
  /** 是否是处方药0不是1是 */
  prescriptionFlag: string
  /** 选择的药品数量 */
  quantity: number
  /** 药品规格 */
  specs: string
  /** 药品用法用量 */
  usageDosag: string
}

/** 订单状态 1待支付 2待接诊 3咨询中 4已完成 5已取消 */
export enum OrderStatus {
  DaiZhiFu = 1,
  DaiJieZhen = 2,
  ZiXunZhong = 3,
  YiWanCheng = 4,
  YiQuXiao = 5,
}
